﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace projetoFinal.pages.administracao.seguradora
{
    public partial class dados : baseWebPage
    {
        protected void Page_Init(object sender, EventArgs e)
        {
            base.Modulo = operaModulo.buscar("ADMINISTRAÇÃO - SEGURADORA");
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                //Arruma o diretório das imagens
                menuTopo.setDiretorio("../");
                menuEsquerda.setDiretorio("../");

                lblTitulo.Text = "Seguradora";
                btnSalvar.Attributes.Add("onclick", "javascript:return validateForm('frmDados');");

                Int64 id = 0;
                if (Request["id"] != null)
                {
                    id = Int64.Parse(Request["id"].ToString());
                    projetoFinal.seguradora t = operaSeguradora.buscar(id);
                    //Busca os dados e preenche conforme o que está no banco
                    txtCodigo.Value = t.CodCadastro.ToString();
                    txtNome.Value = t.Nome.ToString();
                    txtMatricula.Value = t.Matricula.ToString();
                    txtCnpj.Value = string.Format(@"{0:00\.000\.000\/0000\-00}", Convert.ToDouble(t.Cnpj));
                    txtRazaoSocial.Value = t.RazaoSocial.ToString();
                    txtEndereco.Value = t.Endereco.ToString();
                    txtComplemento.Value = t.Complemento.ToString();
                    txtNumero.Value = t.Numero.ToString();
                    if (t.Cep.Length > 0)
                    {
                        txtCep.Value = string.Format(@"{0:00000\-000}", Convert.ToDouble(t.Cep));
                    }
                    else
                    {
                        txtCep.Value = "";
                    }
                    txtBairro.Value = t.Bairro.ToString();
                    txtCidade.Value = t.Cidade.ToString();

                    selUF.Items.FindByValue(t.Uf.ToString()).Selected = true;

                    txtFone.Value = t.Fone.ToString();
                    txtValorPlano.Value = string.Format("{0:N2}", t.ValorPlano);

                    radStatusAtivo.Checked = t.Status == status.ativo ? true : false;
                    radStatusInativo.Checked = t.Status == status.ativo ? false : true;

                    selSitFinanceira.Items.FindByValue(((int)t.SitFinanceiro).ToString()).Selected = true;

                    bindTipoPlano(t.TipoPlano.CodTipoPlano);

                    //No caso de edição
                    if (!base.CanUpdate)
                    {
                        this.btnSalvar.Visible = false;
                        this.information.Visible = true;
                        this.lblTitleInformation.Text = "Aviso!";
                        this.lblMessageInformation.Text = "Você não possui permissão para editar registros!";
                    }
                }
                else
                {
                    bindTipoPlano(0);

                    //No caso de inclusão
                    if (!base.CanCreate)
                    {
                        this.btnSalvar.Visible = false;
                        this.information.Visible = true;
                        this.lblTitleInformation.Text = "Aviso!";
                        this.lblMessageInformation.Text = "Você não possui permissão para incluir registros!";
                    }
                }

                txtMatricula.Attributes.Add("onkeypress", "javascript:return permiteSoNumeros(event);");
                txtCnpj.Attributes.Add("onkeypress", "javascript:FormataCNPJ(this); return permiteSoNumeros(event);");
                txtCnpj.Attributes.Add("onkeyup", "javascript:FormataCNPJ(this);");
                txtNumero.Attributes.Add("onkeypress", "javascript:return permiteSoNumeros(event);");

                txtCep.Attributes.Add("onkeypress", "javascript:FormataCEP(this); return permiteSoNumeros(event);");
                txtCep.Attributes.Add("onkeyup", "javascript:FormataCEP(this);");

                txtFone.Attributes.Add("onkeypress", "javascript:FormataFone(this); return permiteSoNumeros(event);");
                txtFone.Attributes.Add("onkeyup", "javascript:FormataFone(this);");

                txtValorPlano.Attributes.Add("onkeypress", "javascript:return formatar_moeda(this, '.', ',', event)");
            }
        }

        private void bindTipoPlano(Int64 codTipoPlano)
        {
            selTipoPlano.DataSource = operaTipoPlano.listar("", "", 0);
            selTipoPlano.DataTextField = "descr";
            selTipoPlano.DataValueField = "codTipoPlano";
            selTipoPlano.DataBind();

            selTipoPlano.Items.Insert(0, new ListItem("Selecione...", ""));
            if (codTipoPlano != 0)
            {
                selTipoPlano.Items.FindByValue(codTipoPlano.ToString()).Selected = true;
            }
        }
        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            projetoFinal.seguradora t = null;
            if (Request["id"] != null)
            {
                projetoFinal.tipoPlano objTipoPlano = operaTipoPlano.buscar(Int64.Parse(selTipoPlano.Items[selTipoPlano.SelectedIndex].Value));
                status s = radStatusAtivo.Checked ? status.ativo : status.inativo;
                situacaoFinanceira f = (situacaoFinanceira)(int.Parse(selSitFinanceira.Items[selSitFinanceira.SelectedIndex].Value));
                
                t = operaSeguradora.buscar(Int64.Parse(Request["id"].ToString()));
                t.Nome = txtNome.Value;
                t.Matricula = txtMatricula.Value;
                t.Cnpj = txtCnpj.Value.Replace(".", "").Replace("/", "").Replace("-", "");
                t.RazaoSocial = txtRazaoSocial.Value;
                t.Endereco = txtEndereco.Value;
                t.Complemento = txtComplemento.Value;
                t.Numero = txtNumero.Value;
                t.Cep = txtCep.Value.Replace("-", "");
                t.Bairro = txtBairro.Value;
                t.Cidade = txtCidade.Value;
                t.Uf = selUF.Items[selUF.SelectedIndex].Value;
                t.Fone = txtFone.Value;
                if (txtValorPlano.Value.Length > 0)
                {
                    t.ValorPlano = double.Parse(txtValorPlano.Value);
                }
                else
                {
                    t.ValorPlano = 0;
                }


                t.TipoPlano = objTipoPlano;
                t.SitFinanceiro = f;
                t.Status = s;

                //Edição
                int cont = operaSeguradora.editar(t);
                if (cont > 0)
                {
                    Response.Redirect("listagem.aspx?msg=1", false);
                }
                else
                {
                    Response.Redirect("listagem.aspx?msg=2", false);
                }
            }
            else
            {
                projetoFinal.tipoPlano objTipoPlano = operaTipoPlano.buscar(Int64.Parse(selTipoPlano.Items[selTipoPlano.SelectedIndex].Value));
                status s = radStatusAtivo.Checked ? status.ativo : status.inativo;
                situacaoFinanceira f = (situacaoFinanceira)(int.Parse(selSitFinanceira.Items[selSitFinanceira.SelectedIndex].Value));

                t = new projetoFinal.seguradora(0, txtNome.Value, txtMatricula.Value, objTipoPlano, s, f);

                t.Cnpj = txtCnpj.Value.Replace(".", "").Replace("/", "").Replace("-", "");
                t.RazaoSocial = txtRazaoSocial.Value;
                t.Endereco = txtEndereco.Value;
                t.Complemento = txtComplemento.Value;
                t.Numero = txtNumero.Value;
                t.Cep = txtCep.Value.Replace("-", "");
                t.Bairro = txtBairro.Value;
                t.Cidade = txtCidade.Value;
                t.Uf = selUF.Items[selUF.SelectedIndex].Value;
                t.Fone = txtFone.Value;
                if (txtValorPlano.Value.Length > 0)
                {
                    t.ValorPlano = double.Parse(txtValorPlano.Value);
                }
                else
                {
                    t.ValorPlano = 0;
                }
                
                //Inclusão
                int cont = operaSeguradora.incluir(t);
                if (cont > 0)
                {
                    Response.Redirect("listagem.aspx?msg=3", false);
                }
                else
                {
                    Response.Redirect("listagem.aspx?msg=4", false);
                }
            }
        }
    }
}
